home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1992 June: ROMin Holiday / ADC Developer CD (1992-06) (''ROMin Holiday'')_iso / Developer Connection - 06-1992.iso / Development Platforms / Apple II / Essentials / MPW IIGS Interfaces / PIIGSIncludes / IntMath.p < prev    next >
Encoding:
Text File  |  1990-04-03  |  4.0 KB  |  98 lines  |  [TEXT/MPS ]

  1. {********************************************
  2. ; File: IntMath.p
  3. ;
  4. ;
  5. ; Copyright Apple Computer, Inc. 1986-90
  6. ; All Rights Reserved
  7. ;
  8. ********************************************}
  9.  
  10. UNIT INTMATH;
  11. INTERFACE
  12. USES TYPES;
  13. CONST
  14.  
  15.  
  16. { Error Codes }
  17. imBadInptParam = $0B01;  { bad input parameter }
  18. imIllegalChar = $0B02;  { Illegal character in string }
  19. imOverflow = $0B03;  { integer or long integer overflow }
  20. imStrOverflow = $0B04;  { string overflow }
  21.  
  22. { Limit Values }
  23. minLongint = $80000000;  { minimum negative signed long integer }
  24. minFrac = $80000000;  { pinned value for negative Frac overflow }
  25. minFixed = $80000000;  { pinned value for negative Fixed overflow }
  26. minInt = $8000;  { Minimum negative signed integer }
  27. maxInt = $7FFF;  { Maximum positive signed integer }
  28. maxUInt = $FFFF;  { Maximum positive unsigned integer }
  29. maxLongint = $7FFFFFFF;  { maximum positive signed Longint }
  30. maxFrac = $7FFFFFFF;  { pinned value for positive Frac overflow }
  31. maxFixed = $7FFFFFFF;  { pinned value for positive Fixed overflow }
  32. maxULong = $FFFFFFFF;  { maximum unsigned Long }
  33. TYPE
  34. IntDivRecPtr = ^IntDivRec;
  35. IntDivRec = RECORD
  36.     quotient : Integer; { quotient from SDivide }
  37.     remainder : Integer; { remainder from SDivide }
  38. END;
  39. LongDivRecPtr = ^LongDivRec;
  40. LongDivRec = RECORD
  41.     quotient : Longint; { Quotient from LongDiv }
  42.     remainder : Longint; { remainder from LongDiv }
  43. END;
  44. DivRecPtr = ^DivRec; (* for backward compatability *)
  45. DivRec = LongDivRec;
  46. LongMulRecPtr = ^LongMulRec;
  47. LongMulRec = RECORD
  48.     lsResult : Longint; { low 2 words of product }
  49.     msResult : Longint; { High 2 words of product }
  50. END;
  51. WordDivRecPtr = ^WordDivRec;
  52. WordDivRec = RECORD
  53.     quotient : Integer; { Quotient from UDivide }
  54.     remainder : Integer; { remainder from UDivide }
  55. END;
  56. FUNCTION Dec2Int ( strPtr:Ptr; strLength:Integer; signedFlag:Boolean) : Integer ;
  57. FUNCTION Dec2Long ( strPtr:Ptr; strLength:Integer; signedFlag:Boolean) : Longint ;
  58. FUNCTION Fix2Frac ( fixedValue:Fixed) : Frac ;
  59. FUNCTION Fix2Long ( fixedValue:Fixed) : Longint ;
  60. PROCEDURE Fix2X ( fixedValue:Fixed;VAR extendPtr:Extended)  ;
  61. FUNCTION FixATan2 ( input1:Longint; input2:Longint) : Fixed ;
  62. FUNCTION FixDiv ( dividend:Longint; divisor:Longint) : Fixed ;
  63. FUNCTION FixMul ( multiplicand:Fixed; multiplier:Fixed) : Fixed ;
  64. FUNCTION FixRatio ( numerator:Integer; denominator:Integer) : Fixed ;
  65. FUNCTION FixRound ( fixedValue:Fixed) : Integer ;
  66. FUNCTION Frac2Fix ( fracValue:Frac) : Fixed ;
  67. PROCEDURE Frac2X ( fracValue:Frac;VAR extendPtr:Extended)  ;
  68. FUNCTION FracCos ( angle:Fixed) : Frac ;
  69. FUNCTION FracDiv ( dividend:Longint; divisor:Longint) : Frac ;
  70. FUNCTION FracMul ( multiplicand:Frac; multiplier:Frac) : Frac ;
  71. FUNCTION FracSin ( angle:Fixed) : Frac ;
  72. FUNCTION FracSqrt ( fracValue:Frac) : Frac ;
  73. FUNCTION Hex2Int ( strPtr:Ptr; strLength:Integer) : Integer ;
  74. FUNCTION Hex2Long ( strPtr:Ptr; strLength:Integer) : Longint ;
  75. FUNCTION HexIt ( intValue:Integer) : Longint ;
  76. FUNCTION HiWord ( longValue:Longint) : Integer ;
  77. PROCEDURE IMBootInit   ;
  78. PROCEDURE IMReset   ;
  79. PROCEDURE IMShutDown   ;
  80. PROCEDURE IMStartUp   ;
  81. FUNCTION IMStatus  : Boolean ;
  82. FUNCTION IMVersion  : Integer ;
  83. PROCEDURE Int2Dec ( wordValue:Integer; strPtr:Ptr; strLength:Integer; signedFlag:Boolean)  ;
  84. PROCEDURE Int2Hex ( intValue:Integer; strPtr:Ptr; strLength:Integer)  ;
  85. PROCEDURE Long2Dec ( longValue:Longint; strPtr:Ptr; strLength:Integer; signedFlag:Boolean)  ;
  86. FUNCTION Long2Fix ( longValue:Longint) : Fixed ;
  87. PROCEDURE Long2Hex ( longValue:Longint; strPtr:Ptr; strLength:Integer)  ;
  88. FUNCTION LongDivide ( dividend:Longint; divisor:Longint) : LongDivRec ;
  89. FUNCTION LongMul ( multiplicand:Longint; multiplier:Longint) : LongMulRec ;
  90. FUNCTION LoWord ( longValue:Longint) : Integer ;
  91. FUNCTION Multiply ( multiplicand:Integer; multiplier:Integer) : Longint ;
  92. FUNCTION SDivide ( dividend:Integer; divisor:Integer) : IntDivRec ;
  93. FUNCTION UDivide ( dividend:Integer; divisor:Integer) : WordDivRec ;
  94. FUNCTION X2Fix ( extendPtr:ExtendedPtr) : Fixed ;
  95. FUNCTION X2Frac ( extendPtr:ExtendedPtr) : Frac ;
  96. IMPLEMENTATION
  97. END.
  98.